package com.example.controller;

import com.example.entity.User;
import com.example.service.UserService;
import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * (User)表控制层
 *
 * @author makejava
 * @since 2023-11-23 16:22:46
 */
@Controller
@RequestMapping("/user")
public class UserController {
    /**
     * 服务对象
     */
    @Resource
    private UserService userService;

    /**
     * 插入员工页面
     * @return
     */
    @RequestMapping("/insertPage")
    public String index() {
        return "insertPage";
    }

    /**
     * 通过id查询员工
     *
     * @param id 主键
     * @return 单条数据
     */
    @RequestMapping("select/{id}")
    @ResponseBody
    public String save(@PathVariable int id){
        return userService.queryById(id).toString();
    }

    /**
     *员工列表页面
     * @param model
     * @return
     */
    @RequestMapping("/userList")
    public String userList(Model model){
        List<User> users = userService.userList();
        model.addAttribute("users",users);
        return "userList";
    }

    /**
     * 新增数据
     *
     * @param user 实体
     * @return 新增结果
     */
    @PostMapping("/insert")
    public String save(User user){
        userService.insert(user);
        System.out.println("新增了用户：" + user);
        return "redirect:/user/userList";
    }

    /**
     * 根据id删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @GetMapping("/delete/{id}")
    public String delete(@PathVariable Integer id) {
        userService.deleteById(id);
        return "redirect:/user/userList";
    }

    /**
     * 功能：打开编辑学生界面
     * 备注：使用查询字符串
     *
     * @param id
     * @return
     */
    @GetMapping("/update/{id}")
    public String updatePage(Model model, @PathVariable("id") Integer id) {
        model.addAttribute("user",userService.queryById(id));
        return "updatePage";
    }


    /**
     * 编辑数据
     *
     * @param user 实体
     * @return 编辑结果
     */
    @GetMapping("/update")
    public String updateUser(User user) {
        userService.update(user);
        System.out.println("成功将id为"+user.getId()+"的员工信息修改为:  用户名:" + user.getUsername()+"密码:"+user.getPassword());
        return "redirect:/user/userList";
    }


}

